<?php

/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/8/20
 * Time: 11:33
 */
namespace App\Services\DfChannel;



use App\Constant;
use App\Models\ManualDfMethod;
use App\Models\Payment;
use App\Models\SellerWithdrawRequest;

class DemoChannel implements DfPayChannel
{
    /**
     * 拉起代付
     *
     * 注：
     * 1.根据接口返回结果做相应处理
     * 2.各代付类需严格对应状态参数
     *
     * @param string $wttkId 委托代付记录ID
     * @param string $payment_id 代付记录ID
     * @param int    $channelId 代付渠道ID
     *
     * @return array
     */
    public function pull($wttkId, $payment_id, $channelId = 0)
    {
        // 商户提现记录
        $withdraw_model = SellerWithdrawRequest::find($wttkId);

        $payment_model = Payment::find($payment_id);

        $channel_model = ManualDfMethod::find($channelId);

        // 开户行等信息在sellers表，自取
        $seller = $withdraw_model->seller;
        // $seller->bank_name
        //$seller->bank_acc_name
        //$seller->bank_acc_no

        $df_notify_url = trim(config('app.url'), '/') . '/dfpay/notify';

        // 如果接口调用出现错误，响应必须包含msg字段
//        return ['status' => Constant::NO, 'msg' => '替换返回的错误提示'];

        // 以下两种为接口调用成功的情况
        // 如果同步返回代付结果则用下面这句
//        return ['status' => Constant::YES];

        // 如果异步通知代付结果则用下面这句
//        return ['status' => Constant::NO];
    }




    /**
     * 查询代付
     *
     * @param string $wttkId 委托代付记录ID
     *
     * @return mixed
     */
    public function query($wttkId)
    {
        // TODO: Implement query() method.
    }

    /**
     * 通道签名验证
     *
     * @param string $key
     * @param array  $param
     * @return boolean
     */
    public function verify($key, $param)
    {
        return true;
    }

    /**
     * 通道签名
     *
     * @param string $key
     * @param array  $param
     * @return boolean
     */
    public function sign($key, $param)
    {
        // TODO: Implement sign() method.
    }

    /**
     * 通道响应函数
     *
     * @param bool $ok
     * @return mixed
     */
    public function response($ok = true)
    {
        // TODO: Implement response() method.
    }


    /**
     * 根据通道状态码返回是否继续
     *
     * @param $param
     * @return boolean
     */
    public function checkStatus($param)
    {
        // TODO: Implement checkStatus() method.
    }
}